package com.hotcode;

import java.util.Arrays;

/**
 * @Author: huangzhigao
 * @Date: 2023/2/25 15:08
 */
public class leecode31 {
    public void nextPermutation(int[] nums) {
        int i = nums.length - 2;
        while (i >= 0 && nums[i] >= nums[i + 1]) {
            //找到第一个升序得位置
            i--;
        }

        if (i >= 0) {
            int j = nums.length - 1;
            while (j > i && nums[j] <= nums[i]) {
                //找到第一个后面得值比num[i]大得数
                j--;
            }
            swap(nums, i, j);

        }
        Arrays.sort(nums, i + 1, nums.length);
    }


    public void swap(int[] nums, int i, int j) {
        int tmp = nums[i];
        nums[i] = nums[j];
        nums[j] = tmp;
    }
}
